Bekannte Fehler: ================ Žnderungen: =========== 12.7.90 - Laderfunktionen EMIT, KEY und KEY? auf BIOS umgestellt - Laderfunktionen mssen Register d0-d7/a0-a5 retten. - EXIT ge„ndert, funktionierte nicht 22.7.90 - Lader bergibt zus„tzlich Zeiger auf Tabelle mit den Startbl”cken der einzelnen Ger„te fr R/W. Auf diese Tabelle wird von F68K mit ROOTTABLE zugegriffen. - Wenn WARNING eingeschaltet wird, wird nicht mehr mit FIND, sondern mit VOCSEARCH nur noch das CURRENT-Vokabular durchsucht. - ?LEAVE aus dem Kernel entfernt - Lader stellt Floatstack nicht mehr zur Verfgung. 6.8.90 - DEFER im Kern ge„ndert. Jetzt auch ROMf„hig. - BLOCK defered, mit (BLOCK vorbesetzt - PAUSE eingefhrt (defered), mit NOOP vorbesetzt 3.9.90 - LOAD defered, mit (LOAD vorbesetzt - (LOAD fhrt BLOCK nicht mehr aus, sondern setzt nur BLK - SOURCE fhrt nicht mehr BLOCK, sondern (BLOCK aus 28.9.90 - Aufrufe der Laderfunktionen sichern Register selbst. Laderfunktionen mssen Stack nicht mehr selbst korrigieren. 16.10.90 - USER-Variable CAPS eingefhrt, die angibt, ob in NAME CAPITALIZE ausgefhrt werden soll. - Fehler in BLOCK beseitigt. Wenn der Block nicht gelesen werden kann, ist der Stack sauber. - Wie LOAD und BLOCK ist jetzt auch BUFFER deferred und mit (BUFFER vorbesetzt. - Empfehlung aus Berlin, USER-Variablen ber off(DT,us.l) zu adressieren wurde geprft. Geht nicht, da off nur 8 Bit breit sein darf. 17.10.90 - Fehlerhaftes 'C,' korrigiert. Hatte zuvor den DP um 2 erh”ht. 27.1.91 - Kernel und Lader ge„ndert. I/O-Funktionen bergeben Parameter jetzt auf dem Returnstack, um mit C besser konform zu sein. 14.2.91 - Fehlerhaftes FLIT korrigiert 19.2.91 - VALUE, LOCAL und TO in den Kern bernommen. (ANSI!) 19.5.91 - BEXTEND und BREDUCE korrigiert! 19.5.91 - OSEXPECT korrigiert. Jetzt kein Backspace ber dn linken Rand mehr m”glich. Abschliežendes NULL-Byte ist verschwunden. Wenn EXPECT direkt mit beendet wird, bleibt der Puffer unberhrt! 19.5.91 - R> und >R sind nicht mehr restrict. 3.6.91 - Vergeleiche(0=,<, etc.) beschleunigt 4.6.91 - Kontrollstrukturen den g„ngigen Gepflogenheiten angepažt: BEGIN ... AGAIN BEGIN ... WHILE ... REPEAT BEGIN ... WHILE ... WHILE ... (WHILE) ... REPEAT THEN (THEN) BEGIN ... WHILE ... AGAIN THEN BEGIN ... UNTIL BEGIN ... WHILE ... UNTIL THEN (! von dpANS nicht vorgesehen !) BEGIN ... WHILE ... WHILE ... (WHILE) ... UNTIL THEN THEN (THEN) 4.6.91 - C-Lader wegen fehlerhafter oder fehlender Bibliotheken jetzt in Turbo-C. Sozobon ist damit Mega-OUT. 12.6.91 - WICHTIGE LADER-KERNEL-ŽNDERUNG: Der Lader bergibt nicht mehr alle Parameter einzeln, sondern fažt diese in einem Parameterfeld zusammen, das F68K dann bergeben wird. In diesem Parameterfeld ist Platz fr einen kompletten Registersatz, der von F68K bei deer Initialisierung dort abgelegt wird. Damit hat der Lader vollst„ndigen Zugriff auf seine eigene Laufzeitumgebung, wenn er beim I/O aufgerufen wird. 12.6.91 - READSYS un WRITESYS werden jetzt auch wie schon KEY, EMIT, etc. nicht mehr direkt, sondern in den Tabellen READSYSES und WRITESYSES bergeben. 12.6.91 - Die Adressen in den Tabellen KEYS, KEY?S, EMITS, R/WS, READSYSES und WRITESYSES werden bei der Initialisierung nicht mehr in relative F68K-Adressen umgesetzt, da sie ohnehin nicht direkt via EXECUTE ausgefhrt werden drfen, sondern immer etwas Interfacing durch KEY, KEY?, EMIT, R/W, READSYS und WRITESYS brauchen! Also: (KEY) @ EXECUTE ist verboten!!!! 12.6.91 - Aufgrund der obigen Žnderung wurden (KEY) etc. in ^KEY etc. umbenannt. 12.6.91 - Es wird vom Assembler kein Standard-GEMDOS-Header mehr erzeugt. Stattdessen, erzeugt der Assembler den dokumentierten Header selbst. In den ersten zwei Byte, in der alten Doku als 'jump' bezeichnet, steht aber jetzt 'JP' (was das blož heižen soll?), was vom Lader als Magic-Number geprft werden kann. SAVE wurde dementsprechend bereits ge„ndert. 12.6.91 - VER eingefhrt. VER liefert das datum der Kernelversion im amerikanischen Datumsformat Monat-Tag-Jahr in BCD-Darstellung. Wenn also der Kern z.B. vom 12.6.91 ist erh„lt man: HEX VER . --> 61291 13.6.91 - Lader kommt nun auch mit Diskettenwechseln im Laufwerk A: klar. Vorher aber CHANGEMEDIUM oder CM nicht vergessen!! 14.6.91 - VER noch einmal ge„ndert. Es liefert jetzt eine BCD-Zahl, die das Datum in der Reihenfolge Jahr-Monat-Tag enth„lt. Damit kann man mit > und < die Versionsdaten vergleichen (oder?). 14.6.91: 19910614 14.6.91 - USE des FIFI durch ein viiiel einfacheres ersetzt. es existiert nun ein Stream USESTREAM, der von dem Blockstream, der durch USE ausgew„hlt wird, belegt wird. USE ist damit auch kein definierendes Wort mehr. 20.6.91 - INTERPRET umgestellt. Es fhrt jetzt nach 'NAME NULLSTR? IF EXIT THEN' das DEFER-Wort PARSER in seiner Schleife aus. PARSER kann mit INTERPRETER oder COMPILER besetzt sein. '[' und ']' schalten den PARSER-Vektor um: : [ 0 STATE ! ['] INTERPRETER IS PARSER ; : ] -1 STATE ! ['] COMPILER IS PARSER ; 26.6.91 - LOCALs im Kern allozieren jetzt den Platz fr den Zeiger auf die Daten im Datensegment. Dadurch entsteht zwar eine Indirektion beim Zugriff mehr, dafr ist das Codesegment aber wieder ROM-f„hig - Fehler in DIGIT? beseitigt. @@@@ ist jetzt nicht mehr &9999. 31.7.91 - in CLEAR-BUFFER L”schen der Variablen LASTBLK hinzugefgt, die die Nummer des zuletzt benutzten Blocks enth„lt um (BLOCK z.B. fr LOAD etwas zu beschleunigen. 10.8.91 - DODEFER, die DEFER Laufzeitroutine, erneut ge„ndert, da sie nicht funktionierte. Damit verbunden wurde auch ein 'R>->R'-P„„rchen aus AFTER_LOAD: in RAW.SCR entfernt. - Wirkung von LASTBUF und LASTBLK in (BLOCK ausgeschaltet, da sie zu Inkonsistenzen fhrte. - AGAIN sichtbar gemacht. Der Header hatte gefehlt. - UNLOOP eingefhrt: ... DO ... IF UNLOOP EXIT THEN ... LOOP ... 11.8.91 - CHAR und [CHAR] in den Kernel bernommen. Alle Quellen angepasst. ASCII taucht nicht mehr auf. - CELLS, CELL+, CHARS, CHAR+ in den Kernel aufgenommen. Einige '4+' in CELL+ gewandelt. 18.8.91 - DEVICE1.SCR verkleinert und in DEV.SCR umbenannt, damit es besser auf eine Standarddiskette passt. - (KEY), (EMIT), (KEY?), (R/W), (READSYS) und (WRITESYS) wieder eingefhrt, um Vektorisierund aud High Level zu erm”glichen. Die Vektoren sind mit LOADERKEY, LOADEREMIT ... usw. vorbesetzt. Diese wiederrum werten die Vektoren ^KEY, ^EMIT ... usw. aus. In diesen Uservariablen k”nnen die Funktionsadressen aus den Tabellen KEYS, EMITS ... usw. stehen. Damit hat man eine zweistufige Vektorisierung. - kleine Sch”nheitkorrekturen am Lader. 21.8.91 - >R und R> sind aufgrund der neuen Interpreterstruktur wieder restrict. ??.??.?? - Fehler im Blockstreamsystem beseitigt. Filenamen werden vor ihrer Bearbeitung nach HERE kopiert, da kompilierte Filenamen zu ROO-Code (Run Once Only) gefhrt haben. 19.9.91 - PUSH, SAVEAREA und EVALUATE dem Kernel zugefgt. 21.9.91 - Fehler in BUSE korrigiert. Bei 'nicht gefunden' wurde ein Wert zu wenig abger„umt: NIP ---> NIP NIP - Sch”nheitskorrekturen 4 <--> CELL - PUSH aus Highlevel-Quellen auskommentiert. - kleine Fehler in ANS-LOCALS und ANS-LOCALS_(TO) korrigiert, die durch šbernahme von LOCAL in den Kernel entstanden sind. - Optimierungen im Kernel: bsr --> bsr.s jsr --> bsr(.s) - FENCE keine USER-Variable mehr. - Fehler in PWD korrigiert. Es blieb ein Wert (directory @) auf dem Stack liegen. 23.9.91 - Fehler in DIR beseitigt. Wenn Zeilverzeichnis nicht gefunden wurde, blieb ein Wert auf dem Stack liegen. - SAVE korrigiert. Flags von WRITESYS wurden nicht entfernt. - SAVE in SAVE-SYSTEM umbenannt. - BRANCH und ?BRANCH zwecks gesteigerter Kompatibilit„t zu anderen Systemen (bigForth, ForthMacs) jetzt IMMEDIATE. Dadurch Žnderungen in CASE und UCS (POSTPONE). 4.10.91 - Disassembler von Reinhard Scharnagl provisorisch aufgenommen - ANSI-Worte BL, 2DROP, 2DUP, 2OVER und 2SWAP in den Kernel aufgenommen 14.11.91 - Beim Aufruf der Laderfunktionen wird als unterster Wert auf dem (Return-)Stack die absolute Adresse des FORTHPARAS-Struktur mit an den Lader bergeben. Damit sollte jeder Lader in der Lage sein, seine eigene laufzeitumgebung wiederherzustellen - FIND ist DEFERed und mit (FIND vorbesetzt 19.11.91 - VOC' und [VOC'] eingefhrt, um Vokabularadressen festzustellen (z.B. fr VOCSEARCH) - Blockstream SYSTEM/TERMINAL angelegt, in dem einige einfache Zeichenfunktionen definiert sind. Darunter sind die Variablen ROWS und COLUMNS, die die Terminalausmasse enthalten. Ausgebende Funktionen sollten sich daran orientieren. - .LAST repariert 31.1.92 - F-EDIT Editor von Markus Redeker fest ins System aufgenommen. - neue Anpassung STANDARD-EDIT fr F-EDIT erstellt - F-EDIT ist in /SYSTEM/F-EDIT und wird von /SYSTEM/LOADME in der Form STANDARD-EDIT mit eingebunden - STAMP in F-EDIT ge„ndert. Die ID wird nun mit einem Zeichen Abstand vom rechten Rand in den Block eingefgt. Daduch bleibt eine dort m”gliche ')' als Kommentarzeilenende erhalten. - ATARI-EDIT korrigiert 2069 statt 2096 (oder umgekehrt?) - TOS-Ordner OLDSRC angelegt, in dem alte Sourcen weiterhin mit ausgeliefert werden. - alten Editor FULLSCREEN-EDITOR in die Datei OLDSRC/EDITOR.EXP exportiert und /SYSTEM/FULLSCREEN-EDITOR gel”scht. 01.04.92 - UNLOOP korrigiert. Bernd Paysan hat entdeckt, daž die Register D6/D7 nicht ordnungsgem„ž restauriert wurden. 18.04.92 - CASE-Konstruktion, wie sei beim LMI-System vorkommt, ins /SYSTEM-Verzeichnis bernommen. Wird standardm„žig mitgeladen. Vorsicht mit dem alten CASE in /UTILITY/CASE!! - Disassembler aus dem /SYSTEM-Verzeichnis entfernt und ind /UTILITY-Verzeichnis verlegt. Ein Disassembler ist nicht umbedingt Systembestandteil - 'ž' aus dem Disassembler entfernt und durch '&' ersetzt. Manche Terminals machen mit dem 'ž' Schwierigkeiten 20.4.92 - .R aufgep„ppelt. Stammte noch aus FFORTH-Zeiten und funktionierte nicht so richtig (vorzeichenlos, fhrende Nullen) 21.4.92 - CASE in /SYSTEM/CASE 'ansikonformisiert'. Der Vergleichsparameter wird auf dem Datenstack, nicht auf dem Returnstack gefhrt. - in Floatanbindung /UTILITY/FLOAT/FLOAT-BINDING die neue Version des CASE eingesetzt. Den alten CASE-Quelltext /UTILITY/CASE nach oldsrc\case.exp exportiert und im FIFI gel”scht.